using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// 单例模式实现
public class Singleton<T> : MonoBehaviour where T:Singleton<T>
{
    public static T Instance {get;private set;}
    public void Awake()
    {
        if(ReferenceEquals(Instance,null))
        {
            Instance = (T)this;
            /*
                Unity 在切换游戏场景的时候，默认会消除上一个游戏场景里所有的 GameObject 对象，
                使用 DontDestroyOnLoad() 方法让 GameManager 在切换游戏场景的时候不会被销毁：
            */
            DontDestroyOnLoad(this.gameObject);
        }
        else
        {
            Destroy(this.gameObject);
        }
    }
}